package com.springboot.fram.core.lang;

/**
 * 常用验证正则
 *
 * @author madman
 */
public class Regex {
  /**
   * 验证昵称（昵称只能是3-12位中文/字母/数字）
   */
  public static final String NAME = "^[\u4e00-\u9fa5a-zA-Z0-9]{3,12}$";

    /**
     * 验证角色标识（角色标识只能是3-20位字母/数字）
     */
  public static final String IDENTIFY = "^[a-zA-Z0-9]{3,20}$";

  /**
   * 验证用户名(用户名只能是4-16位以字母开头、可带数字、“_”、“-”的字符)
   */
  public static final String USERNAME = "^[a-zA-Z]{1}([a-zA-Z0-9]|[-_]){3,15}$";

  /**
   * 验证密码(密码只能是8-20位必须符合由大写字母、小写字母、数字、特殊字符至少其中三种组成)
   */

  public static final String PASSWORD = "^(?![a-zA-Z]+$)(?![A-Z0-9]+$)(?![A-Z\\W_!@#$%^&*`~()-+=]+$)(?![a-z0-9]+$)(?![a-z\\W_!@#$%^&*`~()-+=]+$)(?![0-9\\W_!@#$%^&*`~()-+=]+$)[a-zA-Z0-9\\W_!@#$%^&*`~()-+=]{8,20}$";

  /**
   * 验证手机号
   */
  public static final String MOBILE = "^((13[0-9])|(14[0-9])|(15[0-9])|(17[0-9])|(18[0-9])|166|198|199)\\d{8}$";

  /**
   * 验证邮箱
   */
  public static final String EMAIL = "^([a-z0-9A-Z]+[-|\\.]?)+[a-z0-9A-Z]@([a-z0-9A-Z]+(-[a-z0-9A-Z]+)?\\.)+[a-zA-Z]{2,}$";

  /**
   * 请输入2-20位中文
   */
  public static final String CHINESE = "^[\u4e00-\u9fa5]{2,20}$";

  /**
   * 验证数字
   */
  public static final String NUM = "[0-9]+";

  /**
   * 验证URL
   */
  public static final String URL = "^(?=^.{3,255}$)(http(s)?://)?(www\\.)?[a-zA-Z0-9][-a-zA-Z0-9]{0,62}(\\.[a-zA-Z0-9][-a-zA-Z0-9]{0,62})+(:\\d+)*(/\\w+\\.\\w+)*$";

  /**
   * 验证IP地址
   */
  public static final String IP_ADDR = "((?:(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d)))\\.){3}(?:25[0-5]|2[0-4]\\d|((1\\d{2})|([1-9]?\\d))))";

  /**
   * 验证生日
   */
  public static final String BIRTHDAY = "(19|20)\\d{2}-(1[0-2]|0?[1-9])-(0?[1-9]|[1-2][0-9]|3[0-1])";
  /**
   * 特殊字符
   */
  public static final String SPECIAL_CHARACTERS = "[`~!@#$%^&*()+=|{}':;',\\[\\]<>/?~！@#￥%……&*（）——+|{}【】‘；：”“’。，、？]";

  /**
   * 验证金额
   */
  public static final String MONY = "^(([1-9][0-9]*)|(([0]\\.\\d{1,2}|[1-9][0-9]*\\.\\d{1,2})))$";

  /**
   * 验证车牌号
   */
  public static  String HPHM = "([京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼]{1}(([A-HJ-Z]{1}[A-HJ-NP-Z0-9]{5})|([A-HJ-Z]{1}(([DF]{1}[A-HJ-NP-Z0-9]{1}[0-9]{4})|([0-9]{5}[DF]{1})))|([A-HJ-Z]{1}[A-D0-9]{1}[0-9]{3}警)))|([0-9]{6}使)|((([沪粤川云桂鄂陕蒙藏黑辽渝]{1}A)|鲁B|闽D|蒙E|蒙H)[0-9]{4}领)|(WJ[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼·•]{1}[0-9]{4}[TDSHBXJ0-9]{1})|([VKHBSLJNGCE]{1}[A-DJ-PR-TVY]{1}[0-9]{5})";


}
